package com.itheima.stock.service;

import com.itheima.stock.pojo.domain.*;
import com.itheima.stock.pojo.entity.SysPermission;
import com.itheima.stock.pojo.entity.SysUser;
import com.itheima.stock.pojo.vo.PageResult;
import com.itheima.stock.vo.req.LoginReqVo;
import com.itheima.stock.vo.resp.LoginRespVo;
import com.itheima.stock.vo.resp.R;

import java.util.List;
import java.util.Map;

public interface UserService {

    SysUser findByUserName(String userName);

    R<LoginRespVo> login(LoginReqVo vo);

    R<Map> getCaptchaCode();

    R<PageResult> getUserList(FindUserMultipleCondition findUserMultipleCondition);

    R AddUser(UserInfoToAdd userInfoToAdd);

    R<Map<String, List>> getUserRoleInfo(String userId);

    R addUserRole(UserAddRole userAddRole);

    R deleteUserInfo(List<Long> userIds);

    R<SysInfoById> getUserInfoById(Long userId);

    R updateUserInfoById(SysInfoByIdToUpDate sysInfoByIdToUpDate);

    R<PageResult> getUserRoleList(FenyeForRole condition);

    R deleteRoleById(Long roleId);

    R updateUserStatus(Long roleId,Integer status);

    R<List<SysPermission>> getPermissionList();

    R<List<PermissionTree>> getPermissionTree();

    R<PermissionForAdd> addPermission(PermissionForAdd permissionForAdd);

    R updatePermission(PermissionForUpdate permissionForUpdate);

    R deletePermission(Long permissionId);
}
